﻿// Type: System.Web.Mvc.Html.LabelExtensions
// Assembly: System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
// Assembly location: C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 3\Assemblies\System.Web.Mvc.dll

using System;
using System.Linq.Expressions;
using System.Web.Mvc;

namespace System.Web.Mvc.Html
{
    /// <summary>
    /// Represents support for the HTML label element in an ASP.NET MVC view.
    /// </summary>
    public static class LabelExtensions
    {
        /// <summary>
        /// Returns an HTML label element and the property name of the property that is represented by the specified expression.
        /// </summary>
        /// 
        /// <returns>
        /// An HTML label element and the property name of the property that is represented by the expression.
        /// </returns>
        /// <param name="html">The HTML helper instance that this method extends.</param><param name="expression">An expression that identifies the property to display.</param>
        public static MvcHtmlString Label(this HtmlHelper html, string expression);

        /// <returns>
        /// Returns <see cref="T:System.Web.Mvc.MvcHtmlString"/>.
        /// </returns>
        public static MvcHtmlString Label(this HtmlHelper html, string expression, string labelText);

        /// <returns>
        /// An HTML label element and the property name of the property that is represented by the expression.
        /// </returns>
        /// <param name="html">The HTML helper instance that this method extends.</param><param name="expression">An expression that identifies the property to display.</param><typeparam name="TModel">The  type of the model.</typeparam><typeparam name="TValue">The type of the value.</typeparam>
        public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression);

        /// <returns>
        /// An HTML label element and the property name of the property that is represented by the expression.
        /// </returns>
        /// <param name="html">The HTML helper instance that this method extends.</param><param name="expression">An expression that identifies the property to display.</param><param name="labelText">The label text.</param><typeparam name="TModel">The  type of the model.</typeparam><typeparam name="TValue">The type of the value.</typeparam>
        public static MvcHtmlString LabelFor<TModel, TValue>(this HtmlHelper<TModel> html, Expression<Func<TModel, TValue>> expression, string labelText);

        /// <summary>
        /// Returns an HTML label element and the property name of the property that is represented by the model.
        /// </summary>
        /// 
        /// <returns>
        /// An HTML label element and the property name of the property that is represented by the model.
        /// </returns>
        /// <param name="html">The HTML helper instance that this method extends.</param>
        public static MvcHtmlString LabelForModel(this HtmlHelper html);

        /// <returns>
        /// Returns <see cref="T:System.Web.Mvc.MvcHtmlString"/>.
        /// </returns>
        public static MvcHtmlString LabelForModel(this HtmlHelper html, string labelText);
    }
}
